Skip to content

Fix workflow catalog table and revise documentation - #3

Merged
Sergio-ote merged 6 commits into
devfrom
dani/docs
Aug 18, 2026
Merged

Fix workflow catalog table and revise documentation#3
Sergio-ote merged 6 commits into
devfrom
dani/docs

Conversation

@dgruano

@dgruano dgruano commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

What & why

The Snakemake workflow catalog automatically parses the config.schema.yaml to build a parameter table. However, our current release breaks the table in the middle:

image

This happens right after the description field of atera parameters. Indeed, the problem is caused by the block chomping indicator (i.e. the little > before the long, multiline description). Starting the description with > leaves a trailing newline character that is parsed by snakemake inside the table, which breaks the formatting. Instead, >- should fix the parsing. We won't know for sure until we merge to main and release to the catalog, but should work.

Otherwise, I also include small doc changes that fix typos or improve readability. Feel free to chip in.

Opening as a stacked PR onto #2 and leaving it as a draft for now, as I may add new modifications

Validation

  • mkdocs build --strict passes, if documentation was changed

@dgruano dgruano self-assigned this Aug 13, 2026
Base automatically changed from chore/hooks to dev August 18, 2026 14:02
Comment thread docs/rules.md
Comment thread docs/demos.md Outdated
@dgruano
dgruano marked this pull request as ready for review August 18, 2026 17:19
@dgruano
dgruano requested a review from Sergio-ote August 18, 2026 17:20
dgruano and others added 2 commits August 18, 2026 19:23
Updated section titles for consistency across examples, changing 'test' to 'example' for clarity

@Sergio-ote Sergio-ote left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great additions and corrections @dgruano, we seem to be ready for a new merge to main!

Comment thread config/README.md

!!! note "Snakemake-catalog page"
The full, always-updated table of every parameter (type, default, required) is generated automatically from the schema and shown on the workflow's Snakemake-catalog page.
The full, always-updated table of every parameter (type, default, required) is generated automatically from the schema and shown on the workflow's [Snakemake-catalog page](https://snakemake.github.io/snakemake-workflow-catalog/docs/workflows/cbib/SpaceBlocks.html#workflow-parameters).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The full, always-updated table of every parameter (type, default, required) is generated automatically from the schema and shown on the workflow's [Snakemake-catalog page](https://snakemake.github.io/snakemake-workflow-catalog/docs/workflows/cbib/SpaceBlocks.html#workflow-parameters).
The full, always-updated table of every parameter (type, default, required) is generated automatically from the schema and shown on the workflow's [Snakemake-catalog page](https://snakemake.github.io/snakemake-workflow-catalog/docs/workflows/cbib/SpaceBlocks.html).

Comment thread docs/design.md
- **`qc_sweep` rule is diagnostic only** — it never filters, clusters, or writes an h5ad.
- **External annotation takes over.** When enabled, it becomes the primary annotation everywhere. The [Configuration](configuration.md) allows flexibility to retain all cells or remove externally unannotated ones.
- **Config-driven colours** — regions, sample metadata, and cell types, applied consistently across every plot, with a grey fallback for undefined levels. This allows precise and consitent color representations through the analyses.
- **Config-driven colours** — regions, sample metadata, and cell types are applied consistently across every plot, with a grey fallback for undefined levels. This allows precise and consistent colour representations throughout the analyses.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Config-driven colours** — regions, sample metadata, and cell types are applied consistently across every plot, with a grey fallback for undefined levels. This allows precise and consistent colour representations throughout the analyses.
- **Config-driven colours** — regions, sample metadata, and cell type colours are applied consistently across every plot, with a grey fallback for undefined levels. This allows precise and consistent colour representations throughout the analyses.

Comment thread docs/qupath-tutorial.md
SpaceBlocks lets you overlay manual **region annotations** (tumour, healthy, necrosis, …) onto your samples. You draw them once in [QuPath](https://qupath.github.io/), export them as GeoJSON, and the pipeline folds them into `obs["region_annotation"]`.

This is an **optional but recommended step** (without it every cell is `Unlabeled`) because it unlocks the region-aware analyses (neighbourhood, per-region co-occurrence, region-level pseudobulk).
This is an **optional but recommended step** because it unlocks the region-aware analyses (neighbourhood, per-region co-occurrence, region-level pseudobulk). Without it, every cell will be `Unlabeled`.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This is an **optional but recommended step** because it unlocks the region-aware analyses (neighbourhood, per-region co-occurrence, region-level pseudobulk). Without it, every cell will be `Unlabeled`.
This is an **optional but recommended step** because it unlocks the region-aware analyses (neighbourhood, per-region co-occurrence, region-level pseudobulk). **Without it, every cell will be classified as `Unlabeled`**.

Comment thread docs/qupath-tutorial.md
| Mode | How to obtain the image |
| --- | --- |
| `visiumhd` / `xenium5k` (a Headblock runs) | `snakemake qupath_images` writes one image per sample under `Samples/{sample}/QuPath_image/` (a hires PNG for Visium HD, a morphology TIFF for Xenium 5K). |
| `visiumhd` / `xenium5k` (a Headblock runs) | `snakemake qupath_images` writes one image per sample under `Samples/{sample}/QuPath_image/` (a Hi-Res PNG for Visium HD, a morphology TIFF for Xenium 5K). |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| `visiumhd` / `xenium5k` (a Headblock runs) | `snakemake qupath_images` writes one image per sample under `Samples/{sample}/QuPath_image/` (a Hi-Res PNG for Visium HD, a morphology TIFF for Xenium 5K). |
| `visiumhd` / `xenium5k` (a Headblock runs) | `snakemake qupath_images` writes one image per sample under `Samples/{sample}/QuPath_image/` (a high resolution PNG for Visium HD, a morphology TIFF for Xenium 5K). |

Comment thread docs/rules.md
## Resources & retries

No rule uses `localrule`, so nothing runs on the scheduler's head node.
No rule uses `localrule`, so nothing runs on the scheduler's head node as long as the selected profile has configured remote execution (e.g. see `profiles/slurm`)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
No rule uses `localrule`, so nothing runs on the scheduler's head node as long as the selected profile has configured remote execution (e.g. see `profiles/slurm`)
No rule uses `localrule`. This is particularly important when the Snakemake profile is configured for remote execution (e.g. see `profiles/slurm`), so nothing runs on the scheduler's head node.

Comment thread docs/rules.md

Every compute rule draws `mem_mb` / `runtime` / `threads` from `config["resources"]` (with a `default` fallback).

Memory is wrapped so it **grows with the retry attempt** (`mem_mb = base × attempt`); combined with `retries: 3` in the SLURM profile, an OOM-killed job is automatically resubmitted with more RAM.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Memory is wrapped so it **grows with the retry attempt** (`mem_mb = base × attempt`); combined with `retries: 3` in the SLURM profile, an OOM-killed job is automatically resubmitted with more RAM.
!!! warning "Job retry triggers"
Retries are triggered by any job failure, not specifically out-of-memory errors, so jobs failing for other reasons will also be resubmitted with increased memory.

Comment thread docs/demos.md Outdated
```

## Visium HD example (mouse brain)
[comment]: <Of the four examples, two are called examples and two other are called tests. Two add the name "HeadBlock" but two other don't. We should change this for consistency>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[comment]: <Of the four examples, two are called examples and two other are called tests. Two add the name "HeadBlock" but two other don't. We should change this for consistency>

@Sergio-ote
Sergio-ote merged commit e47990c into dev Aug 18, 2026
3 checks passed
@Sergio-ote
Sergio-ote deleted the dani/docs branch August 25, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants